import {
  request, requestGetUserMsg
} from "../../request/index.js";
Page({

  /**
   * 页面的初始数据
   */
  data: {
    storeList: [
      //   {
      //   store_id: 1,
      //   store_img_url: "http://q6zagsjbu.bkt.clouddn.com/1001.jpg",
      //   storeName: "海哥汉堡",
      //   score: "2.2",
      //   perCapita: "168",
      //   location: "东风路信息学院路"
      // },
      // {
      //   store_id: 2,
      //   store_img_url: "http://q6zagsjbu.bkt.clouddn.com/1002.jpg",
      //   storeName: "海哥饺子店",
      //   score: "4.7",
      //   perCapita: "22",
      //   location: "农业路文化路"
      // },
      // {
      //   store_id: 3,
      //   store_img_url: "http://q6zagsjbu.bkt.clouddn.com/1003.jpg",
      //   storeName: "海哥下午茶",
      //   score: "3.6",
      //   perCapita: "12",
      //   location: "东风路南阳路交叉口"
      // }
    ],
    tabs: [{
      id: 0,
      name: "综合",
      isActive: true
    },
    {
      id: 1,
      name: "销量",
      isActive: false
    },
    {
      id: 2,
      name: "价格",
      isActive: false
    }
    ]
  },
  // 请求接口获取数据
  QueryParams: {
    //query:关键字     cid:分类id   综合/销量/价格  三选1   pageNum:当前页
    query: "",
    cid: 0,
    pageNum: 1,
    pageSize: 10
  },
  type_id: 0,
  //总页数
  totalPage: 1,

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //获取分类id
    var type_id = options.type_id;
    this.type_id = type_id;
    //请求获取店铺列表
    this.getStoreList();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    // console.log("到底了")
    //1.判断有没有下一页  根据生命周期函数onload 可以知道总页数和当前页码  如果当前页码>=总页数则提示没有下一页了
    //2.如果有下一页,获取下一页的数据并添加到列表中(不能覆盖,要添加)
    if (this.QueryParams.pageNum >= this.totalPage) {
      wx.showToast({
        title: '数据已加载完成',
        duration: 2000,
      });
    } else {
      this.QueryParams.pageNum++;
      this.getStoreList(); //获取商品数据
    }
  },

  //   综合/销量/价格  三者改变触发的事件  改变后重新调用请求商品列表数据
  indexChange(e) {
    // e.detail 获取的值就是子组件传入的值
    // console.log(e.detail)
    const { index } = e.detail;
    // console.log(index);
    // 2.解构表达式获取数组内容
    var { tabs } = this.data; // 等价于 var tabs = this.data.tabs;
    // 3.考验功底的时候了  v是对象 i是索引 index是wxml传入的id  根据两者是否相等来决定选中状态
    var id = 0;
    tabs.forEach((v, i) => {
      // i === index ? v.isActive = true : v.isActive = false
      if (i === index) {
        v.isActive = true;
        id = index;
      } else {
        v.isActive = false
      }
    });
    // console.log(tabs);
    this.setData({ tabs })
    //赋值给cid
    let QueryParams = this.QueryParams;
    QueryParams.cid = id;
    this.QueryParams = QueryParams;
    //清空店铺列表信息
    this.setData({
      storeList: []
    })
    //总页数变为1
    this.totalPage = 1;
    //获取商品列表
    this.getStoreList();
  },
  // 获取商品列表数据
  async getStoreList() {
    var type_id = this.type_id;
    //0.获取总页数
    this.getTotalPage();
    //1. 先判断是分类信息中的哪一个事件(通过id获得)
    // console.log(tabs)
    //2. 通过res可以获取该分类商品的 总条数/商品信息/  totalPage= Math.ceil(total/pageSize)
    //3. 把新获取到的内容添加到之前的商品列表中(不能覆盖, 要添加)    例子:storeList:[...this.data.storeList,...res.storeList] 拼接新的数据
    // console.log(this.QueryParams)
    let query = this.QueryParams;
    //根据不同的选择类别  获取店铺列表
    const storeList = await requestGetUserMsg({ url: "/storeList", data: { cid: query.cid, pageNum: query.pageNum, pageSize: query.pageSize,type_id:type_id } });
    // console.log(storeList.data);
    //res是请求路径返回的数据
    this.setData({
      storeList: [...this.data.storeList, ...storeList.data]
    })
  },
  //获取总页数
  async getTotalPage() {
    var query = this.QueryParams;
    //获取总数量
    let res = await requestGetUserMsg({ url: "/getTotalNum", data: { cid: query.cid, pageNum: query.pageNum, pageSize: query.pageSize } });
    var totalNum = res.data[0].totalNum;
    //总页数 = 总数量/ 每页数量  的向上取整
    const totalPage = Math.ceil(totalNum / this.QueryParams.pageSize);
    this.totalPage = totalPage;
  }
})